Fix Xen builds with perfc=y and perfc_arrays=y.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 16 Feb 2006 21:33:46 +0000 (22:33 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 16 Feb 2006 21:33:46 +0000 (22:33 +0100)
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ben Thomas <ben@virtualiron.com>
xen/arch/x86/shadow_public.c
xen/include/public/dom0_ops.h
xen/include/xen/perfc_defn.h

index 791046d9427f0edf849a0720b77ae881a67baf26..b92aba59cf37f79f1ded7496986d55cae5030937 100644 (file)
@@ -672,7 +672,7 @@ void free_shadow_page(unsigned long smfn)
         break;
 #endif
     case PGT_snapshot:
-        perfc_decr(apshot_pages);
+        perfc_decr(snapshot_pages);
         break;
 
     default:
index 195386a66478ca66fee2316ad59b7efbabc56cb3..088bf29b51cf295c6547ea69f8fb2a223c18da6a 100644 (file)
@@ -311,7 +311,7 @@ typedef struct dom0_read_memtype {
 #define DOM0_PERFCCONTROL_OP_RESET 1   /* Reset all counters to zero. */
 #define DOM0_PERFCCONTROL_OP_QUERY 2   /* Get perfctr information. */
 typedef struct dom0_perfc_desc {
-    uint8_t      name[80];             /* name of perf counter */
+    char         name[80];             /* name of perf counter */
     uint32_t     nr_vals;              /* number of values for this counter */
     uint32_t     vals[64];             /* array of values */
 } dom0_perfc_desc_t;
index d991b8ef49a4fcf0a3599f2c0c6c4dfc042a7ee7..7feb1aba52bda8ed5d0191cb38d941773bca8c0e 100644 (file)
@@ -14,6 +14,12 @@ PERFCOUNTER_ARRAY(shm_l2_updates,       "shadow mode L2 pt updates",
                   PERFC_MAX_PT_UPDATES)
 PERFCOUNTER_ARRAY(shm_hl2_updates,      "shadow mode HL2 pt updates",
                   PERFC_MAX_PT_UPDATES)
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFCOUNTER_ARRAY(shm_l3_updates,       "shadow mode L3 pt updates",
+                  PERFC_MAX_PT_UPDATES)
+PERFCOUNTER_ARRAY(shm_l4_updates,       "shadow mode L4 pt updates",
+                  PERFC_MAX_PT_UPDATES)
+#endif
 PERFCOUNTER_ARRAY(snapshot_copies,      "entries copied per snapshot",
                   PERFC_MAX_PT_UPDATES)
 
@@ -60,6 +66,10 @@ PERFCOUNTER_CPU(read_fault_bail,        "sf bailed due to read_fault")
 PERFCOUNTER_CPU(map_domain_page_count,  "map_domain_page count")
 PERFCOUNTER_CPU(ptwr_emulations,        "writable pt emulations")
 
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFCOUNTER_CPU(shadow_l4_table_count,  "shadow_l4_table count")
+PERFCOUNTER_CPU(shadow_l3_table_count,  "shadow_l3_table count")
+#endif
 PERFCOUNTER_CPU(shadow_l2_table_count,  "shadow_l2_table count")
 PERFCOUNTER_CPU(shadow_l1_table_count,  "shadow_l1_table count")
 PERFCOUNTER_CPU(unshadow_table_count,   "unshadow_table count")
@@ -68,6 +78,10 @@ PERFCOUNTER_CPU(shadow_update_va_fail1, "shadow_update_va_fail1")
 PERFCOUNTER_CPU(shadow_update_va_fail2, "shadow_update_va_fail2")
 
 /* STATUS counters do not reset when 'P' is hit */
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFSTATUS(shadow_l4_pages,             "current # shadow L4 pages")
+PERFSTATUS(shadow_l3_pages,             "current # shadow L3 pages")
+#endif
 PERFSTATUS(shadow_l2_pages,             "current # shadow L2 pages")
 PERFSTATUS(shadow_l1_pages,             "current # shadow L1 pages")
 PERFSTATUS(hl2_table_pages,             "current # hl2 pages")
@@ -82,6 +96,10 @@ PERFCOUNTER_CPU(shadow_hl2_table_count, "shadow_hl2_table count")
 PERFCOUNTER_CPU(shadow_set_l1e_force_map, "shadow_set_l1e forced to map l1")
 PERFCOUNTER_CPU(shadow_set_l1e_unlinked, "shadow_set_l1e found unlinked l1")
 PERFCOUNTER_CPU(shadow_set_l1e_fail,    "shadow_set_l1e failed (no sl1)")
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFCOUNTER_CPU(shadow_set_l2e_force_map, "shadow_set_l2e forced to map l2")
+PERFCOUNTER_CPU(shadow_set_l3e_force_map, "shadow_set_l3e forced to map l3")
+#endif
 PERFCOUNTER_CPU(shadow_invlpg_faults,   "shadow_invlpg's get_user faulted")
 PERFCOUNTER_CPU(unshadow_l2_count,      "unpinned L2 count")
 
@@ -95,6 +113,10 @@ PERFCOUNTER_CPU(shadow_sync_all,        "calls to shadow_sync_all")
 PERFCOUNTER_CPU(shadow_sync_va,         "calls to shadow_sync_va")
 PERFCOUNTER_CPU(resync_l1,              "resync L1 page")
 PERFCOUNTER_CPU(resync_l2,              "resync L2 page")
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFCOUNTER_CPU(resync_l3,              "resync L3 page")
+PERFCOUNTER_CPU(resync_l4,              "resync L4 page")
+#endif
 PERFCOUNTER_CPU(resync_hl2,             "resync HL2 page")
 PERFCOUNTER_CPU(shadow_make_snapshot,   "snapshots created")
 PERFCOUNTER_CPU(shadow_mark_mfn_out_of_sync_calls,
@@ -113,6 +135,9 @@ PERFCOUNTER_CPU(validate_pde_changes,   "validate_pde makes changes")
 PERFCOUNTER_CPU(shadow_get_page_fail,   "shadow_get_page_from_l1e fails")
 PERFCOUNTER_CPU(validate_hl2e_calls,    "calls to validate_hl2e_change")
 PERFCOUNTER_CPU(validate_hl2e_changes,  "validate_hl2e makes changes")
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
+PERFCOUNTER_CPU(validate_entry_changes,  "validate_entry changes")
+#endif
 PERFCOUNTER_CPU(exception_fixed,        "pre-exception fixed")
 PERFCOUNTER_CPU(get_mfn_from_gpfn_foreign, "calls to get_mfn_from_gpfn_foreign")
 PERFCOUNTER_CPU(remove_all_access,      "calls to remove_all_access")